// defineStore是用来创建仓库实例
import { defineStore } from "pinia";

// 第一个参数是模块名
// 第二个参数，如果是普通写法是对象，如果是组合api的写法是函数
const useCounterStore = defineStore("counter", {
  state: () => ({
    count: 3,
  }),
  getters: {
    // getters里面要拿到state的值，既可以使用this.xxx，也可以接收参数state
    doubleCount(state) {
      // return this.count * 2;
      return state.count * 2;
    },
  },
  actions: {
    // 开发工具的记录是在state改变的时候生成，不是在函数调用的时候生成，所以里面可以直接写异步函数
    add() {
      setTimeout(() => {
        this.count++;
      }, 1000);
    },
  },
});

export default useCounterStore;
